//////////////////////////////////
// Gregory R McNeil
//
// Car Demo
//
//////////////////////////////////

#ifndef CAMERA_H_
#define CAMERA_H_

#include "NonCopyable.h"
#include "Vec3.h"
#include "EventHandler.h"
#include "PlayState.h"


class Camera : public NonCopyable, public EventHandler
{
private:
	Camera();
	friend class Singleton<Camera>;

public:
	void Prepare();
	void Update();
	void Draw();

	const Vec3f& GetPos();
	const Vec3f& GetVel();
	void SetPos(Vec3f position);

	const Vec3f& GetLookAt();
	void SetLookAt(Vec3f lookAt);
	void SetCamVel(const Vec3f& camVel);
	void OnKeyboardEvent(const SDL_KeyboardEvent& event);

private:
	Vec3f	m_pos;
	Vec3f	m_lookAt;
	Vec3f	m_vel;

};

typedef Singleton<Camera> TheCamera;

#endif